iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
自我挑戰組

30天玩轉規劃LINE BOT系列 第 10

第 10天:基礎設置(四)

  • 分享至 

  • xImage
  •  

前面在圖文選單設定時,C選單我設定是【地點】
內容是
類型:文字
內容:@地點
所以意味著我點選【地點】,系統就會自動發出【@地點】,那我的機器人就應該回覆地址訊息給用戶。
https://ithelp.ithome.com.tw/upload/images/20220925/20144761L4k173emGq.png

接下來就來做這個設定。
【LocationSendMessage】讓機器人傳送。
https://ithelp.ithome.com.tw/upload/images/20220925/20144761um9t6eDZNc.png
location_message = LocationSendMessage(
title='my location',
address='Tokyo',
latitude=35.65910807942215,
longitude=139.70372892916203
)

從程式碼中可以看到,我們是需要添加標題(title)、地址(address)與經緯度(latitude),完成設置後就可以回傳地址給用戶。
接下來把location_message 貼入 Pycharm,由於是要在系統傳【@地點】時機器人才回傳地址訊息,所以在這添加elif的判斷式,【elif message_text == '@地點':】
https://ithelp.ithome.com.tw/upload/images/20220925/20144761SXutxtPugs.png

一樣也看到LocationSendMessage有紅底線,所以一樣回到上方找到[from linebot.models import],然後將[LocationSendMessage]然後將模組匯入。
https://ithelp.ithome.com.tw/upload/images/20220925/20144761PQTd3tDvkw.png

完成後看到LocationSendMessage紅底線就消失了
https://ithelp.ithome.com.tw/upload/images/20220925/20144761ZaqoI334nh.png

並且透過line_bot_api協助回傳地址
https://ithelp.ithome.com.tw/upload/images/20220925/20144761kjd2A69Cjx.png

在來就是設定會回傳的標題(title)、地址(address)與經緯度(latitude)。
我這邊透過【GOOGLE地圖】來找一個我想設定的地點。
我以台北車站為例子,點選了之後會顯示https://www.google.com.tw/maps/place/台北車站/@
@之後的數字就是經緯度,分別是25.0452399與121.51789
https://ithelp.ithome.com.tw/upload/images/20220925/20144761EpGolWjjX6.png
所以我就編輯程式碼為以下

location_message = LocationSendMessage(
title='台北車站',
address='10041台北市中正區忠孝西路1段49號',
latitude=25.0452399,
longitude=121.51789
)

填回Pycharm上
https://ithelp.ithome.com.tw/upload/images/20220925/201447616CrKi3c01P.png

然後重啟Sever看看效果。
https://ithelp.ithome.com.tw/upload/images/20220925/20144761VmC307uXEe.jpg


再來說說關於 Follow and UNFollow Event
就是指新使用者將機器人加入好友或移除(封鎖)機器人時的事件紀錄。
在Pycharm上加入這程式碼:

@handler.add(FollowEvent)
def handle_follow(event):
print(event)

@handler.add(UnfollowEvent)
def handle_follow(event):
print(event)

https://ithelp.ithome.com.tw/upload/images/20220925/20144761L11vcRqWdS.png

同樣也看到FollowEvent與UnfollowEvent有紅底線,所以一樣回到上方找到[from linebot.models import],然後將[FollowEvent]與[UnfollowEvent]然後將模組匯入。
https://ithelp.ithome.com.tw/upload/images/20220925/20144761mzO3DGW6kp.png

這樣紅底線沒了,接下來就重啟SEVER試試看。
https://ithelp.ithome.com.tw/upload/images/20220925/20144761SntSCJ9WEa.png

首先封鎖,可以看到回傳的type值式unfollow
https://ithelp.ithome.com.tw/upload/images/20220925/20144761FQp3RFACLw.png

然後在解除封鎖就可以看到type的值是follow
https://ithelp.ithome.com.tw/upload/images/20220925/201447610zetCk84Fw.png

接下來,讓機器人發送歡迎內容
https://ithelp.ithome.com.tw/upload/images/20220925/20144761qt8nqI1WEq.png

一樣重新啟動sever看看效果有沒有如預期。
https://ithelp.ithome.com.tw/upload/images/20220925/20144761EalSNMcToP.jpg

下一篇,就開始進階訊息設置


上一篇
第 09天:基礎設置(三)
下一篇
第11天:進階訊息設置(一)
系列文
30天玩轉規劃LINE BOT30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言